package com.logistica.metropolitana.db.model;

import java.io.Serializable;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;


/**
 * The persistent class for the ae_constatar_sitio database table.
 * 
 */
@Entity
@Table(name="ae_constatar_sitio")
@NamedQuery(name="AeConstatarSitio.findAll", query="SELECT a FROM AeConstatarSitio a")
public class AeConstatarSitio implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="id_constatar")
	private Long idConstatar;

	@Column(name="entrega_manual")
	private Boolean entregaManual;

	private Boolean reparacion;

	//bi-directional many-to-one association to AeObservacione
	@Fetch(FetchMode.SELECT)
	@OneToMany(mappedBy="aeConstatarSitio", fetch=FetchType.EAGER)
	private List<AeObservacione> aeObservaciones;

	//bi-directional many-to-one association to AeSitio
	@OneToOne(mappedBy="aeConstatarSitio")
	private AeSitio aeSitio;

	public AeConstatarSitio() {
	}

	public Long getIdConstatar() {
		return this.idConstatar;
	}

	public void setIdConstatar(Long idConstatar) {
		this.idConstatar = idConstatar;
	}

	public Boolean getEntregaManual() {
		return this.entregaManual;
	}

	public void setEntregaManual(Boolean entregaManual) {
		this.entregaManual = entregaManual;
	}

	public Boolean getReparacion() {
		return this.reparacion;
	}

	public void setReparacion(Boolean reparacion) {
		this.reparacion = reparacion;
	}

	public List<AeObservacione> getAeObservaciones() {
		return this.aeObservaciones;
	}

	public void setAeObservaciones(List<AeObservacione> aeObservaciones) {
		this.aeObservaciones = aeObservaciones;
	}

	public AeObservacione addAeObservacione(AeObservacione aeObservacione) {
		getAeObservaciones().add(aeObservacione);
		aeObservacione.setAeConstatarSitio(this);

		return aeObservacione;
	}

	public AeObservacione removeAeObservacione(AeObservacione aeObservacione) {
		getAeObservaciones().remove(aeObservacione);
		aeObservacione.setAeConstatarSitio(null);

		return aeObservacione;
	}	

	public AeSitio getAeSitio() {
		return aeSitio;
	}

	public void setAeSitio(AeSitio aeSitio) {
		this.aeSitio = aeSitio;
	}

	public AeSitio addAeSitio(AeSitio aeSitio) {
		aeSitio.setAeConstatarSitio(this);

		return aeSitio;
	}

	public AeSitio removeAeSitio(AeSitio aeSitio) {
		aeSitio.setAeConstatarSitio(null);

		return aeSitio;
	}

}